Volume data is simply defined as observed or calculated data associated with a region in three dimensional space. The data can be scalars (e.g., temperature, material density), vectors (e.g., fluid velocity, color), tensors (e.g., stress), etc. Volume visualization then pertains to graphical techniques that assist in the understanding of such volume data.
Volume data may be classified into two types: one in which data is associated with points that have no special relationship to one another, and another in which the data points reflect some underlying geometry. FIG.10 illustrates examples of various geometries associated with volume data. For example, medical CAT scan data is generally based on rectangular grids. Finite difference data may be rectangular or irregular. And, finite element data may be rectangular, irregular or unstructured.
In the following discussion, the term "cell" and "voxel" are used interchangeably. Each cell/voxel is a rectangular parallelepiped with attributes (e.g., color, density, temperature) at its comers. Within each cell, attributes are assumed to vary linearly.
The types of visualization techniques applied to volume data with underlying geometry are of two classes, volume modeling and volume rendering. Volume modeling methods extract intermediate geometry from volume data for visualization purposes. For example, one can generate contour/iso surfaces as is discussed within Lorenson, W. E. and Cline, H. E., "Marching Cubes: A High Resolution 3D Surface Construction Algorithm," Computer Graphics, Volume 21, No. 4, July 1987, pp. 163-169; Gallagher, R. S. and Nagtegall, J. C., "An Efficient 3-D Visualization Technique for Finite Element Models and Other Coarse Volumes," Computer Graphics, Volume 23, No. 3, July 1989, pp. 185-194; and U.S. Patent application (Ser. No. 08/222,512), now U.S. Pat. No. 5,454,068 , which are hereby incorporated by reference herein. Another technique is to pass a cutting plane through the volume and show data color coded on the cutting plane, as is disclosed in the above-referenced patent application. Such techniques, however, do not allow the entire volume to be visualized at once.
Volume rendering involves techniques where the model is rendered as a colored semi-transparent gel. In volume rendering methods, color and opacity are assigned to each voxel. Images are formed from the resulting colored semi-transparent volume by blending or compositing together voxels projecting to the same pixel on the picture plane. Please refer to Upson, C. and Keeler, M., "VBUFFER: Visual Volume Rendering," Computer Graphics, Volume 22, No. 4, August 1988, pp. 59-64; Drebin, R. A., Carpenter, L., and Hanrahan, P., "Volume Rendering," Computer Graphics, "Volume 22, No. 4, August 1988, pp. 65-74; and Levoy, M., "Volume Visualization Algorithms and Architectures," SIGGRAPH Course Notes, August 1990, and U.S. Patent application Ser. No. 07/991,019 assigned to a common assignee, which are hereby incorporated by reference herein.
Upson discloses an algorithm that operates on volume models that are made of rectilinear computational cells (rectangular grids) where scalar values to be visualized are present at the cell comers. Within each cell interior, these scalar values are assumed to vary trilinearly. Referring next to FIG. 2, mapping functions may be chosen that map a scalar value to a color and opacity. These functions are useful in isolating information through variation in opacity and highlighting that information through color. For example, in FIG. 2, contour/iso surfaces at particular thresholds may be obtained by specifying narrow steps or peaks in the opacity mapping function. Processing of these cells may be done in one of two ways.
One method uses ray casting. At each pixel a ray is tracked through the volume until either the accumulated opacity reaches unity or the volume is exhausted, at which time the accumulated colors and opacity are stored and the processing moves on to the next pixel. Within each cell, numerical integration over the intersection ray length is performed to arrive at color and opacity contributions from that cell.
Another method sweeps the volume domain one cell at a time, scan converting each cell and blending the resulting voxel image with the contents of the image buffer. Since the volume domain is rectilinear, it is possible to determine which cells occlude or partially occlude others (refer to FIG. 3). Cells are processed starting with those on the plane closest to the view point and progress plane-by-plane until the farthest cells have been processed. The processing order of cells within each plane proceeds from the closest cell to those adjoining this cell according to their distance from the viewpoint.
Both these methods use front-to-back processing with the following equations for blending pixels: EQU C.sub.r =C.sub.c +(1- A.sub.c) * (A.sub.i * C.sub.i) EQU A.sub.r .div.A.sub.c =(1-A.sub.c) * A.sub.i
where C denotes color, A denotes opacity (an opacity value of 0 implies total transparency and a value of 1 implies total opaqueness), i denotes the incoming new value, c denotes current content of the image buffer, and r denotes the result of blending (which will be written back into the image buffer after every blend).
The process discussed within Levoy also utilizes ray casting, in a manner as similarly illustrated in FIG. 4. However, along each ray, colors and opacity are sampled W times and blended front-to-back. One major assumption in this technique is that the spacing between pixels is less than or equal to the cell size in volume data.
From the above discussions, it may be discerned that the major steps in volume rendering are: (1) operate on volume data from front-to-back; (2) compute colors and opacity values; and (3) blend together colors and opacity when processing front-to -back.
While ray casting approaches are more flexible in that they can operate on an unstructured mesh or grid of volume data directly, they are more expensive to design and implement. The other class of volume rendering techniques are more common and less expensive, but generally must operate on voxel-based rectangular grid definitions. However, in order to use such voxel-based methods, unstructured grids of finite volume data must be convened to rectangular grids of voxel definitions.
Thus, there is a need in the an for a technique for convening finite element models to voxel definitions for use by volume rendering algorithms that operate on data associated with rectangular grids.